import { useTypedSelector } from "@store/index";
import { guestChannelSelectors } from "@slice/guestChannel";
import { useEffect } from "react";
import { useLazyRequestGuestChannelsQuery } from "@service/channelEndpoints";

export default function useGuestChannels() {
  // 先从状态切片中获取访客频道列表
  // 判断本地是否存在访客频道列表, 如果存在直接放回
  // 如果本地不存在访客频道列表, 向服务端发送请求获取访问频道列表, 保存到状态切片
  const guestChannels = useTypedSelector(guestChannelSelectors.selectAll);
  const total = useTypedSelector(guestChannelSelectors.selectTotal);
  const [requestGuestChannels] = useLazyRequestGuestChannelsQuery();

  useEffect(() => {
    // 本地存在访问频道列表
    if (total > 0) return;
    // 发送请求获取访客频道
    requestGuestChannels(undefined);
  }, [requestGuestChannels, total]);

  return guestChannels;
}
